home *** CD-ROM | disk | FTP | other *** search
Wrap
package javax.swing.text; import java.awt.AWTEvent; import java.awt.Color; import java.awt.Component; import java.awt.Container; import java.awt.Dimension; import java.awt.Insets; import java.awt.LayoutManager; import java.awt.Point; import java.awt.Rectangle; import java.awt.datatransfer.Clipboard; import java.awt.datatransfer.ClipboardOwner; import java.awt.datatransfer.DataFlavor; import java.awt.datatransfer.StringSelection; import java.awt.datatransfer.Transferable; import java.awt.event.ActionEvent; import java.awt.event.InputEvent; import java.awt.event.KeyEvent; import java.io.IOException; import java.io.ObjectInputStream; import java.io.Reader; import java.io.Writer; import java.util.Hashtable; import javax.accessibility.Accessible; import javax.accessibility.AccessibleContext; import javax.swing.Action; import javax.swing.JComponent; import javax.swing.JViewport; import javax.swing.KeyStroke; import javax.swing.Scrollable; import javax.swing.UIManager; import javax.swing.event.CaretEvent; import javax.swing.event.CaretListener; import javax.swing.plaf.TextUI; public abstract class JTextComponent extends JComponent implements Scrollable, Accessible { public static final String FOCUS_ACCELERATOR_KEY = "focusAcceleratorKey"; private Document model; private transient Caret caret; private transient Highlighter highlighter; private transient Keymap keymap; private boolean opaque; private transient MutableCaretEvent caretEvent; private Color caretColor; private Color selectionColor; private Color selectedTextColor; private Color disabledTextColor; private boolean editable; private Insets margin; private char focusAccelerator; private Action focusAction = new FocusAction(this); private static ClipboardOwner defaultClipboardOwner = new ClipboardObserver(); private static Hashtable keymapTable = null; private JTextComponent editor; private static JTextComponent focusedComponent; public static final String DEFAULT_KEYMAP = "default"; static final KeyBinding[] defaultBindings = new KeyBinding[]{new KeyBinding(KeyStroke.getKeyStroke(8, 0), "delete-previous"), new KeyBinding(KeyStroke.getKeyStroke(127, 0), "delete-next"), new KeyBinding(KeyStroke.getKeyStroke(39, 0), "caret-forward"), new KeyBinding(KeyStroke.getKeyStroke(37, 0), "caret-backward")}; // $FF: synthetic field static Class class$javax$swing$event$CaretListener; static { try { keymapTable = new Hashtable(17); Keymap var0 = addKeymap("default", (Keymap)null); var0.setDefaultAction(new DefaultEditorKit.DefaultKeyTypedAction()); DefaultEditorKit var1 = new DefaultEditorKit(); loadKeymap(var0, defaultBindings, ((EditorKit)var1).getActions()); } catch (Throwable var2) { var2.printStackTrace(); keymapTable = new Hashtable(17); } } public JTextComponent() { ((Component)this).enableEvents(8L); this.caretEvent = new MutableCaretEvent(this); ((Component)this).addMouseListener(this.caretEvent); ((Component)this).addFocusListener(this.caretEvent); this.setEditable(true); ((Container)this).setLayout((LayoutManager)null); this.updateUI(); } // $FF: synthetic method static Document access$0(JTextComponent var0) { return var0.model; } // $FF: synthetic method static JTextComponent access$1() { return focusedComponent; } // $FF: synthetic method static void access$2(JTextComponent var0) { focusedComponent = var0; } public void addCaretListener(CaretListener var1) { super.listenerList.add(class$javax$swing$event$CaretListener != null ? class$javax$swing$event$CaretListener : (class$javax$swing$event$CaretListener = class$("javax.swing.event.CaretListener")), var1); } public static Keymap addKeymap(String var0, Keymap var1) { DefaultKeymap var2 = new DefaultKeymap(var0, var1); if (var0 != null) { keymapTable.put(var0, var2); } return var2; } // $FF: synthetic method static Class class$(String var0) { try { return Class.forName(var0); } catch (ClassNotFoundException var2) { throw new NoClassDefFoundError(((Throwable)var2).getMessage()); } } public void copy() { try { Clipboard var1 = ((Component)this).getToolkit().getSystemClipboard(); int var2 = Math.min(this.caret.getDot(), this.caret.getMark()); int var3 = Math.max(this.caret.getDot(), this.caret.getMark()); if (var2 != var3) { Document var4 = this.getDocument(); String var5 = var4.getText(var2, var3 - var2); StringSelection var6 = new StringSelection(var5); var1.setContents(var6, defaultClipboardOwner); } } catch (BadLocationException var7) { } } public void cut() { if (this.isEditable() && ((Component)this).isEnabled()) { try { Clipboard var1 = ((Component)this).getToolkit().getSystemClipboard(); int var2 = Math.min(this.caret.getDot(), this.caret.getMark()); int var3 = Math.max(this.caret.getDot(), this.caret.getMark()); if (var2 != var3) { Document var4 = this.getDocument(); String var5 = var4.getText(var2, var3 - var2); StringSelection var6 = new StringSelection(var5); var1.setContents(var6, defaultClipboardOwner); var4.remove(var2, var3 - var2); } } catch (BadLocationException var7) { } } else { ((Component)this).getToolkit().beep(); } } protected void fireCaretUpdate(CaretEvent var1) { Object[] var2 = super.listenerList.getListenerList(); for(int var3 = var2.length - 2; var3 >= 0; var3 -= 2) { if (var2[var3] == (class$javax$swing$event$CaretListener != null ? class$javax$swing$event$CaretListener : (class$javax$swing$event$CaretListener = class$("javax.swing.event.CaretListener")))) { ((CaretListener)var2[var3 + 1]).caretUpdate(var1); } } } public AccessibleContext getAccessibleContext() { if (super.accessibleContext == null) { super.accessibleContext = new AccessibleJTextComponent(this); } return super.accessibleContext; } public Action[] getActions() { return this.getUI().getEditorKit(this).getActions(); } public Caret getCaret() { return this.caret; } public Color getCaretColor() { return this.caretColor; } public int getCaretPosition() { return this.caret.getDot(); } public Color getDisabledTextColor() { return this.disabledTextColor; } public Document getDocument() { return this.model; } public char getFocusAccelerator() { return this.focusAccelerator; } static final JTextComponent getFocusedComponent() { return focusedComponent; } public Highlighter getHighlighter() { return this.highlighter; } public Keymap getKeymap() { return this.keymap; } public static Keymap getKeymap(String var0) { return (Keymap)keymapTable.get(var0); } public Insets getMargin() { return this.margin; } public Dimension getPreferredScrollableViewportSize() { return ((JComponent)this).getPreferredSize(); } public int getScrollableBlockIncrement(Rectangle var1, int var2, int var3) { switch (var2) { case 0: return var1.width; case 1: return var1.height; default: throw new IllegalArgumentException("Invalid orientation: " + var2); } } public boolean getScrollableTracksViewportHeight() { if (((Component)this).getParent() instanceof JViewport) { return ((JViewport)((Component)this).getParent()).getHeight() > ((JComponent)this).getPreferredSize().height; } else { return false; } } public boolean getScrollableTracksViewportWidth() { if (((Component)this).getParent() instanceof JViewport) { return ((JViewport)((Component)this).getParent()).getWidth() > ((JComponent)this).getPreferredSize().width; } else { return false; } } public int getScrollableUnitIncrement(Rectangle var1, int var2, int var3) { switch (var2) { case 0: return var1.width / 10; case 1: return var1.height / 10; default: throw new IllegalArgumentException("Invalid orientation: " + var2); } } public String getSelectedText() { String var1 = null; int var2 = Math.min(this.caret.getDot(), this.caret.getMark()); int var3 = Math.max(this.caret.getDot(), this.caret.getMark()); if (var2 != var3) { try { Document var4 = this.getDocument(); var1 = var4.getText(var2, var3 - var2); } catch (BadLocationException var5) { throw new IllegalArgumentException(((Throwable)var5).getMessage()); } } return var1; } public Color getSelectedTextColor() { return this.selectedTextColor; } public Color getSelectionColor() { return this.selectionColor; } public int getSelectionEnd() { int var1 = Math.max(this.caret.getDot(), this.caret.getMark()); return var1; } int getSelectionEnd(Position.Bias[] var1) { DefaultCaret var2 = (DefaultCaret)this.caret; if (var2.getDot() > var2.getMark()) { var1[0] = var2.getDotBias(); return var2.getDot(); } else { var1[0] = var2.getMarkBias(); return var2.getMark(); } } public int getSelectionStart() { int var1 = Math.min(this.caret.getDot(), this.caret.getMark()); return var1; } int getSelectionStart(Position.Bias[] var1) { DefaultCaret var2 = (DefaultCaret)this.caret; if (var2.getDot() < var2.getMark()) { var1[0] = var2.getDotBias(); return var2.getDot(); } else { var1[0] = var2.getMarkBias(); return var2.getMark(); } } public String getText() { Document var1 = this.getDocument(); String var2; try { var2 = var1.getText(0, var1.getLength()); } catch (BadLocationException var3) { var2 = null; } return var2; } public String getText(int var1, int var2) throws BadLocationException { return this.getDocument().getText(var1, var2); } public TextUI getUI() { return (TextUI)super.ui; } public boolean isEditable() { return this.editable; } public boolean isFocusTraversable() { return ((Component)this).isEnabled(); } public boolean isOpaque() { return this.opaque; } public static void loadKeymap(Keymap var0, KeyBinding[] var1, Action[] var2) { Hashtable var3 = new Hashtable(); for(int var4 = 0; var4 < var2.length; ++var4) { Action var5 = var2[var4]; String var6 = (String)var5.getValue("Name"); var3.put(var6 != null ? var6 : "", var5); } for(int var7 = 0; var7 < var1.length; ++var7) { Action var8 = (Action)var3.get(var1[var7].actionName); if (var8 != null) { var0.addActionForKeyStroke(var1[var7].key, var8); } } } private final boolean mapEventToAction(KeyEvent var1) { Keymap var2 = this.getKeymap(); if (var2 != null) { KeyStroke var3 = KeyStroke.getKeyStrokeForEvent(var1); Action var4 = var2.getAction(var3); if (var4 != null) { String var5 = null; if (var1.getKeyChar() != 0) { var5 = String.valueOf(var1.getKeyChar()); } ActionEvent var6 = new ActionEvent(this, 1001, var5, ((InputEvent)var1).getModifiers()); var4.actionPerformed(var6); ((InputEvent)var1).consume(); return true; } } return false; } public Rectangle modelToView(int var1) throws BadLocationException { return this.getUI().modelToView(this, var1); } public void moveCaretPosition(int var1) { this.caret.moveDot(var1); } protected String paramString() { String var1 = this.opaque ? "true" : "false"; String var2 = this.editable ? "true" : "false"; String var3 = this.caretColor != null ? this.caretColor.toString() : ""; String var4 = this.selectionColor != null ? this.selectionColor.toString() : ""; String var5 = this.selectedTextColor != null ? this.selectedTextColor.toString() : ""; String var6 = this.disabledTextColor != null ? this.disabledTextColor.toString() : ""; String var7 = this.margin != null ? this.margin.toString() : ""; return super.paramString() + ",caretColor=" + var3 + ",disabledTextColor=" + var6 + ",editable=" + var2 + ",margin=" + var7 + ",opaque=" + var1 + ",selectedTextColor=" + var5 + ",selectionColor=" + var4; } public void paste() { Clipboard var1 = ((Component)this).getToolkit().getSystemClipboard(); Transferable var2 = var1.getContents(this); if (var2 != null) { try { String var3 = (String)var2.getTransferData(DataFlavor.stringFlavor); this.replaceSelection(var3); } catch (Exception var4) { ((Component)this).getToolkit().beep(); } } } protected void processComponentKeyEvent(KeyEvent var1) { int var2 = ((AWTEvent)var1).getID(); switch (var2) { case 400: if (!this.mapEventToAction(var1)) { Keymap var3 = this.getKeymap(); if (var3 != null) { Action var4 = var3.getDefaultAction(); if (var4 != null) { ActionEvent var5 = new ActionEvent(this, 1001, String.valueOf(var1.getKeyChar()), ((InputEvent)var1).getModifiers()); var4.actionPerformed(var5); ((InputEvent)var1).consume(); } } } break; case 401: this.mapEventToAction(var1); break; case 402: this.mapEventToAction(var1); } } public void read(Reader var1, Object var2) throws IOException { EditorKit var3 = this.getUI().getEditorKit(this); Document var4 = var3.createDefaultDocument(); if (var2 != null) { var4.putProperty("stream", var2); } try { var3.read(var1, var4, 0); this.setDocument(var4); } catch (BadLocationException var6) { throw new IOException(((Throwable)var6).getMessage()); } } private void readObject(ObjectInputStream var1) throws IOException, ClassNotFoundException { var1.defaultReadObject(); this.caretEvent = new MutableCaretEvent(this); ((Component)this).addMouseListener(this.caretEvent); ((Component)this).addFocusListener(this.caretEvent); } public void removeCaretListener(CaretListener var1) { super.listenerList.remove(class$javax$swing$event$CaretListener != null ? class$javax$swing$event$CaretListener : (class$javax$swing$event$CaretListener = class$("javax.swing.event.CaretListener")), var1); } public static Keymap removeKeymap(String var0) { return (Keymap)keymapTable.remove(var0); } public void removeNotify() { super.removeNotify(); if (focusedComponent == this) { focusedComponent = null; } } public void replaceSelection(String var1) { Document var2 = this.getDocument(); if (var2 != null) { try { int var3 = Math.min(this.caret.getDot(), this.caret.getMark()); int var4 = Math.max(this.caret.getDot(), this.caret.getMark()); if (var3 != var4) { var2.remove(var3, var4 - var3); } if (var1 != null && var1.length() > 0) { var2.insertString(var3, var1, (AttributeSet)null); } } catch (BadLocationException var5) { ((Component)this).getToolkit().beep(); } } } public void select(int var1, int var2) { if (var1 < 0) { var1 = 0; } if (var2 > this.getDocument().getLength()) { var2 = this.getDocument().getLength(); } if (var2 < var1) { var2 = var1; } if (var1 > var2) { var1 = var2; } this.setCaretPosition(var1); this.moveCaretPosition(var2); } public void selectAll() { Document var1 = this.getDocument(); if (var1 != null) { this.setCaretPosition(0); this.moveCaretPosition(var1.getLength()); } } public void setCaret(Caret var1) { if (this.caret != null) { this.caret.removeChangeListener(this.caretEvent); this.caret.deinstall(this); } Caret var2 = this.caret; this.caret = var1; if (this.caret != null) { this.caret.install(this); this.caret.addChangeListener(this.caretEvent); } ((JComponent)this).firePropertyChange("caret", var2, this.caret); } public void setCaretColor(Color var1) { Color var2 = this.caretColor; this.caretColor = var1; ((JComponent)this).firePropertyChange("caretColor", var2, this.caretColor); } public void setCaretPosition(int var1) { Document var2 = this.getDocument(); if (var2 != null) { if (var1 > var2.getLength() || var1 < 0) { throw new IllegalArgumentException("bad position: " + var1); } this.caret.setDot(var1); } } public void setDisabledTextColor(Color var1) { Color var2 = this.disabledTextColor; this.disabledTextColor = var1; ((JComponent)this).firePropertyChange("disabledTextColor", var2, this.disabledTextColor); } public void setDocument(Document var1) { if (super.accessibleContext != null) { this.model.removeDocumentListener((AccessibleJTextComponent)super.accessibleContext); } Document var2 = this.model; this.model = var1; ((JComponent)this).firePropertyChange("document", var2, var1); ((JComponent)this).revalidate(); ((Component)this).repaint(); if (super.accessibleContext != null) { this.model.addDocumentListener((AccessibleJTextComponent)super.accessibleContext); } } public void setEditable(boolean var1) { if (var1 != this.editable) { boolean var2 = this.editable; this.editable = var1; ((JComponent)this).firePropertyChange("editable", new Boolean(var2), new Boolean(this.editable)); ((Component)this).repaint(); } } public void setEnabled(boolean var1) { super.setEnabled(var1); ((Component)this).repaint(); } public void setFocusAccelerator(char var1) { var1 = Character.toUpperCase(var1); KeyStroke[] var2 = ((JComponent)this).getRegisteredKeyStrokes(); int var3 = 0; for(int var4 = var2.length; var3 < var4; ++var3) { if (((JComponent)this).getActionForKeyStroke(var2[var3]) == this.focusAction) { if (var2[var3].getKeyChar() == var1) { return; } ((JComponent)this).unregisterKeyboardAction(var2[var3]); break; } } if (var1 != 0) { ((JComponent)this).registerKeyboardAction(this.focusAction, KeyStroke.getKeyStroke(var1, 8), 2); } char var5 = this.focusAccelerator; this.focusAccelerator = var1; ((JComponent)this).firePropertyChange("focusAcceleratorKey", var5, this.focusAccelerator); } public void setHighlighter(Highlighter var1) { if (this.highlighter != null) { this.highlighter.deinstall(this); } Highlighter var2 = this.highlighter; this.highlighter = var1; if (this.highlighter != null) { this.highlighter.install(this); } ((JComponent)this).firePropertyChange("highlighter", var2, var1); } public void setKeymap(Keymap var1) { Keymap var2 = this.keymap; this.keymap = var1; ((JComponent)this).firePropertyChange("keymap", var2, this.keymap); } public void setMargin(Insets var1) { Insets var2 = this.margin; this.margin = var1; ((JComponent)this).firePropertyChange("margin", var2, var1); ((Container)this).invalidate(); } public void setOpaque(boolean var1) { this.opaque = var1; } public void setSelectedTextColor(Color var1) { Color var2 = this.selectedTextColor; this.selectedTextColor = var1; ((JComponent)this).firePropertyChange("selectedTextColor", var2, this.selectedTextColor); } public void setSelectionColor(Color var1) { Color var2 = this.selectionColor; this.selectionColor = var1; ((JComponent)this).firePropertyChange("selectionColor", var2, this.selectionColor); } public void setSelectionEnd(int var1) { this.select(this.getSelectionStart(), var1); } public void setSelectionStart(int var1) { this.select(var1, this.getSelectionEnd()); } public void setText(String var1) { try { Document var2 = this.getDocument(); var2.remove(0, var2.getLength()); var2.insertString(0, var1, (AttributeSet)null); } catch (BadLocationException var3) { ((Component)this).getToolkit().beep(); } } public void setUI(TextUI var1) { super.setUI(var1); } public void updateUI() { this.setUI((TextUI)UIManager.getUI(this)); ((Container)this).invalidate(); } public int viewToModel(Point var1) { return this.getUI().viewToModel(this, var1); } public void write(Writer var1) throws IOException { Document var2 = this.getDocument(); try { this.getUI().getEditorKit(this).write(var1, var2, 0, var2.getLength()); } catch (BadLocationException var4) { throw new IOException(((Throwable)var4).getMessage()); } } }